<?php
/*
* BD.php
* Libreria de conexion para una base de datos PostgreSQL. Usa las constantes definidas en /config/conf.php
**/

  /**
   * Constante Db_Error - Valor de retorno en caso de error
   */
  define("Db_Error", -1);
  
class Bd{

  /**
   * $conn - Conexion a la base de datos
   */
  private $conn;

  /**
   * $conn - Conexion a la base de datos
   */
  var $error;

  /**
   * Constructor vac�o por defecto
   */
  function Bd(){
	$this->error = "<br />Por favor notifique este error al administrador del sistema.";
  }

  /**
   * Conexion a la base de datos
   */
  function connect(){
	$this->conn = @mysql_connect(DBHOST.":3306", DBUSER, DBPASSWORD)
		or die("No se pudo conectar a la base de datos: <br>" . mysql_error()."<br>  Por favor avise de este problema al administrador.");
	@mysql_select_db(DBNAME) or die("No se puedo seleccionar la base de datos. Por favor avise de este problema al administrador.");
      @mysql_set_charset('utf8',$this->conn);  
  }
  
  /**
   * Desconexion a la base de datos
   */
  function disconnect(){
    @mysql_close($this->conn);
  }

  /**
   * Retorna un valor �nico en una variable
   */
  function doQueryOne($query){
    $this->connect();
        
    $result = @mysql_query ($query, $this->conn) or $this->fail("Error en: " . $query);
	$row = @mysql_fetch_row ($result);
	$cell = $row[0];
    print mysql_error();
    $this->disconnect();
    
	return $cell;    
  }

  /**
   * Retorna una fila en un arreglo
   */
  function doQueryRow($query){
    $this->connect();
        
    $result = @mysql_query ($query, $this->conn) or $this->fail("Error en: " . $query);
	$row = @ mysql_fetch_array($result, MYSQL_ASSOC);
    print mysql_error();
    $this->disconnect();
    
	return $row;    
  }

  /**
   * Retorna todos en una matr�z
   */
  function doQueryAll($query){
    $this->connect();
    
    $result = @mysql_query ($query, $this->conn) or $this->fail("Error en: " . $query);
    for ($i=0; $row = mysql_fetch_array($result, MYSQL_ASSOC); $i++)
  		$array[$i]=$row;
 	print mysql_error();
	//for ($i = 0; ($array[$i] = @mysql_fetch_array ($result)) != false; $i++);
    //$array=mysql_fetch_array($result);	
    //$this->disconnect();
    
	return $array;

  }
    
  /**
   * Actualiza la base de datos y retorna el numero de filas actualizadas.
   */
  function doUpdate($query){
    $this->connect();
    
	$result = mysql_query ($query, $this->conn);
    if(!$result){
		echo $query;
    	print mysql_error();
    }
    $this->disconnect();

    return $result;  
  }

  /**
   * Genera un error
   */
  function fail($message){
    $_SESSION['db_error'] = $message.$this->error;
    return false;
  }
  

  
}


?>